package cn.sinata.wanglin.net;


import com.google.gson.JsonObject;

import java.util.ArrayList;

import cn.sinata.wanglin.db.model.User;
import cn.sinata.wanglin.model.Active;
import cn.sinata.wanglin.model.ActiveDetails;
import cn.sinata.wanglin.model.Addressinfo;
import cn.sinata.wanglin.model.AppBannerInfo;
import cn.sinata.wanglin.model.BindPhoneInfo;
import cn.sinata.wanglin.model.Circle;
import cn.sinata.wanglin.model.CircleMessage;
import cn.sinata.wanglin.model.Comment;
import cn.sinata.wanglin.model.CommentBean;
import cn.sinata.wanglin.model.Contact;
import cn.sinata.wanglin.model.Group;
import cn.sinata.wanglin.model.GroupList;
import cn.sinata.wanglin.model.Imageinfo;
import cn.sinata.wanglin.model.IsFriendInfo;
import cn.sinata.wanglin.model.LikeData;
import cn.sinata.wanglin.model.LoginInfo;
import cn.sinata.wanglin.model.Makecomplaints;
import cn.sinata.wanglin.model.Message;
import cn.sinata.wanglin.model.MyDynamicInfo;
import cn.sinata.wanglin.model.MyVillage;
import cn.sinata.wanglin.model.MyLeadMaterial;
import cn.sinata.wanglin.model.Myrepair;
import cn.sinata.wanglin.model.Newsinfo;
import cn.sinata.wanglin.model.NewsinfoDetails;
import cn.sinata.wanglin.model.PropertyHome;
import cn.sinata.wanglin.model.RepairDetail;
import cn.sinata.wanglin.model.SameCityClass;
import cn.sinata.wanglin.model.NewFriend;
import cn.sinata.wanglin.model.RepairRecord;
import cn.sinata.wanglin.model.SameCityInfo;
import cn.sinata.wanglin.model.SearchUser;
import cn.sinata.wanglin.model.SendToMeBean;
import cn.sinata.wanglin.model.Shieldperson;
import cn.sinata.wanglin.model.SignupUserBean;
import cn.sinata.wanglin.model.TuCaoAndSameCityDetailInfo;
import cn.sinata.wanglin.model.Userinfo;
import cn.sinata.wanglin.model.Village;
import cn.sinata.wanglin.model.VillageNeighbor;
import cn.sinata.wanglin.model.WeatherInfo;
import cn.sinata.wanglin.net.model.ResultData;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;

/**
 *
 * Created by liaoxiang on 16/6/20.
 */
public interface ApiService {

     @GET("weather")
     Observable<WeatherInfo> getWeatherByCityName(@Query("location") String location,@Query("output") String output,@Query("mcode") String mcode,@Query("ak") String ak);

     @POST("app/server")
     Observable<ResultData<MyDynamicInfo>> getMyDynamic(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<Myrepair>> getRepairInfo(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<RepairDetail>> getRepairDetail(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<AppBannerInfo>> getStartPage(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<IsFriendInfo>> isFriend(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<LoginInfo>> login(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<JsonObject>> baseJsonObjectRequest(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<LoginInfo>> dorigisterandlogin(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<BindPhoneInfo>> bindPhone(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<Userinfo>> getuserinfo(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<JsonObject>> upduser(@Query("key") String key);

     @POST("app/server")
     Observable<ResultData<ArrayList<CommentBean>>> getComment(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<MyVillage>>> getMyVillage(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Myrepair>>> getRepairList(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<MyLeadMaterial>>> getDepositList(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<SameCityClass>>> getClassify(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Village>>> getNearbyHousing(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Village>>> searchHousing(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Imageinfo>>> uploadImg(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Addressinfo>>> searchaddress(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Makecomplaints>>> getHousingDynamic(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Active>>> getHousingDynamicFromActive(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Newsinfo>>> getNews(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<SameCityInfo>>> getGossipComment(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<TuCaoAndSameCityDetailInfo>> getTuCaoOrSameCityDetail(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ActiveDetails>> getActiveDetail(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<SignupUserBean>>> getSignupInfo(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<NewsinfoDetails>> getNewsinfoDetail(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<SendToMeBean>>> getSendMy(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Message>>> getNoticeOrMessages(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Shieldperson>>> blackList(@Query("key") String key);



     @POST("app/server")
     Observable<ResultData<ArrayList<VillageNeighbor>>> getHousingUserList(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Circle>>> getFriendCircleList(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Contact>>> getFriendList(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<GroupList>> myGroup(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<Group>> createGroup(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<SearchUser>>> searchUser(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<Comment>> addComment(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<Group>> groupInfo(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<MyLeadMaterial>>> getExpress(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<RepairRecord>>> getRepair(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Contact>>> getNewFriendsByContacts(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<NewFriend>>> getNewFriends(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<LikeData>> clickPraise(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<Circle>> circlesInfo(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<PropertyHome>> getTenement(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<CircleMessage>>> circleNewMsg(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<User>>> getInviteUser(@Query("key") String key);
     @POST("app/server")
     Observable<ResultData<ArrayList<Group>>> userGroups(@Query("key") String key);
}
